package main

import (
	"fmt"
	"io"
	"os"
)

// CopyFile 拷贝文件函数
func CopyFile(dstName, srcName string) (written int64, err error) {
	//	以读方式打开源文件
	src, err := os.Open(srcName)
	if err != nil {
		fmt.Printf("open %s failed, err: ", srcName, err)
		return
	}
	defer src.Close()
	// 以写|创建的方式打开目标方式
	dst, err := os.OpenFile(dstName, os.O_CREATE|os.O_WRONLY, 0644)
	if err != nil {
		fmt.Printf("open %s failed, err:%v\n", dstName, err)
		return
	}
	defer dst.Close()
	return io.Copy(dst, src) // 调用io.copy()拷贝内容
}
func main() {
	_, err := CopyFile("dst.txt", "src.txt")
	if err != nil {
		fmt.Println("copy file failed, err", err)
		return
	}
	fmt.Println("copy done!")
}
